package Vista;

import Entidades.Entrevistado;
import Entidades.PantallaAplicacion;
import Logica.LogicaAplicacion;
import java.awt.Color;
import java.util.ArrayList;
import java.util.Calendar;
import javax.swing.DefaultListModel;
import javax.swing.JOptionPane;

/**
 *
 * @author Puma
 */
public class DatosClasificacion extends javax.swing.JFrame implements Runnable {

    private Boolean inicio = true;
    private Thread t;
    private int minutos = 0, segundos = 0, horas = 0;         
    private int posicionActual;
    private ArrayList servicios = null;
    private Boolean fuePrevia = false;
    private DefaultListModel modeloLista = new DefaultListModel();

    
    /** Creates new form InicioEntrevista */
    public DatosClasificacion(int minutos, int segundos, int horas) {
        initComponents();
        this.minutos = minutos;
        this.segundos = segundos;
        this.horas = horas;
        iniciarReloj();
    }

    public DatosClasificacion(int minutos,int segundos, int horas, ArrayList servicios,int posicionActual){
        initComponents();
        this.minutos = minutos;
        this.segundos = segundos;
        this.horas = horas;
        this.servicios = servicios;
        this.setPosicionActual(posicionActual);
        iniciarReloj();
        agregarPantalla();
        llenarListaNavegacion();
        System.out.println("Posicion actual: "+posicionActual);
    }

    private void llenarListaNavegacion(){
        for (PantallaAplicacion p : LogicaAplicacion.getPantallasAplicacion()){
            modeloLista.addElement(LogicaAplicacion.obtenerTituloPregunta(p.getNroPregunta()));
        }
        this.jLNavegacion.setModel(modeloLista);
    }

    private void agregarPantalla(){
        LogicaAplicacion.agregarPantallaLista(new PantallaAplicacion(this, 15));
    }

    public int getPosicionActual() {
        return posicionActual;
    }

    private void setPosicionActual(int posicionActual) {
        this.posicionActual = posicionActual;
    }

    public Boolean getFuePrevia() {
        return fuePrevia;
    }

    public void setFuePrevia(Boolean fuePrevia) {
        this.fuePrevia = fuePrevia;
    }
    
    public DatosClasificacion(){
        initComponents();
    }

    private void iniciarReloj(){
        t = new Thread(this);
        t.start();
    }

     public void hacerVisible(Boolean visible, int posicionActual){
        this.setPosicionActual(posicionActual);
        this.setFuePrevia(true);
        this.setVisible(visible);
        System.out.println("Posicion actual: "+posicionActual);
    }

    public void hacerVisibleDespuesSiguiente(Boolean visible, int posicionActual){
        this.setPosicionActual(posicionActual);
        this.setVisible(visible);
        System.out.println("Posicion actual: "+posicionActual);
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jLayeredPane1 = new javax.swing.JLayeredPane();
        jLTimer = new javax.swing.JLabel();
        jLLogo = new javax.swing.JLabel();
        jLTitulo = new javax.swing.JLabel();
        jTNroEmpleados = new javax.swing.JTextField();
        jLSponsor = new javax.swing.JLabel();
        jLabel1 = new javax.swing.JLabel();
        jTNroObreros = new javax.swing.JTextField();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLayeredPane2 = new javax.swing.JLayeredPane();
        jLabel4 = new javax.swing.JLabel();
        jTEmailEntrevistado = new javax.swing.JTextField();
        jLabel6 = new javax.swing.JLabel();
        jTlfEntrevistado = new javax.swing.JTextField();
        jLabel7 = new javax.swing.JLabel();
        jTNombreEntrevistado = new javax.swing.JTextField();
        jLabel8 = new javax.swing.JLabel();
        jLabel9 = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTComentariosEmpleado = new javax.swing.JTextArea();
        jLabel14 = new javax.swing.JLabel();
        jTTlfEntrevistado = new javax.swing.JTextField();
        jLayeredPane3 = new javax.swing.JLayeredPane();
        jCBSi = new javax.swing.JCheckBox();
        jLabel10 = new javax.swing.JLabel();
        jCBNo = new javax.swing.JCheckBox();
        jLabel11 = new javax.swing.JLabel();
        jBFinalizar = new javax.swing.JButton();
        jBPrev = new javax.swing.JButton();
        jLabel12 = new javax.swing.JLabel();
        jLabel13 = new javax.swing.JLabel();
        jScrollPane2 = new javax.swing.JScrollPane();
        jLNavegacion = new javax.swing.JList();
        jLFondo = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jLTimer.setText("jLabel1");
        jLTimer.setBounds(924, 10, 70, 14);
        jLayeredPane1.add(jLTimer, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLLogo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Vista/Imagenes/DatinvestLogo.png"))); // NOI18N
        jLLogo.setBounds(10, 10, 80, 80);
        jLayeredPane1.add(jLLogo, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLTitulo.setFont(new java.awt.Font("Tahoma", 3, 14)); // NOI18N
        jLTitulo.setText(".:: Instrumento de emprendedores  - Sección II: Servicios de técnología de información y telecomunicaciones ::. ");
        jLTitulo.setBounds(90, 20, 800, 14);
        jLayeredPane1.add(jLTitulo, javax.swing.JLayeredPane.DEFAULT_LAYER);
        jTNroEmpleados.setBounds(220, 140, 70, 20);
        jLayeredPane1.add(jTNroEmpleados, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLSponsor.setText("Desarrollado para Datinvest C.A");
        jLSponsor.setBounds(110, 40, 220, 14);
        jLayeredPane1.add(jLSponsor, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLabel1.setText("Número de empleados:");
        jLabel1.setBounds(100, 140, 120, 14);
        jLayeredPane1.add(jLabel1, javax.swing.JLayeredPane.DEFAULT_LAYER);
        jTNroObreros.setBounds(420, 140, 70, 20);
        jLayeredPane1.add(jTNroObreros, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLabel2.setText("Número de obreros:");
        jLabel2.setBounds(310, 140, 110, 14);
        jLayeredPane1.add(jLabel2, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLabel3.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel3.setText("Historial de Navegación:");
        jLabel3.setBounds(570, 50, 390, 14);
        jLayeredPane1.add(jLabel3, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLabel4.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel4.setText("Nos podría indicar su:");
        jLabel4.setBounds(90, 20, 130, 14);
        jLayeredPane2.add(jLabel4, javax.swing.JLayeredPane.DEFAULT_LAYER);
        jTEmailEntrevistado.setBounds(250, 110, 160, 20);
        jLayeredPane2.add(jTEmailEntrevistado, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLabel6.setText("Email:");
        jLabel6.setBounds(120, 110, 120, 14);
        jLayeredPane2.add(jLabel6, javax.swing.JLayeredPane.DEFAULT_LAYER);
        jTlfEntrevistado.setBounds(250, 80, 160, 20);
        jLayeredPane2.add(jTlfEntrevistado, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLabel7.setText("Teléfono:");
        jLabel7.setBounds(120, 80, 120, 14);
        jLayeredPane2.add(jLabel7, javax.swing.JLayeredPane.DEFAULT_LAYER);
        jTNombreEntrevistado.setBounds(250, 50, 160, 20);
        jLayeredPane2.add(jTNombreEntrevistado, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLabel8.setText("Nombre:");
        jLabel8.setBounds(120, 50, 120, 14);
        jLayeredPane2.add(jLabel8, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLabel9.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel9.setText("Algunos comentarios con respecto a la encuesta realizada:");
        jLabel9.setBounds(500, 40, 360, 14);
        jLayeredPane2.add(jLabel9, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jTComentariosEmpleado.setColumns(20);
        jTComentariosEmpleado.setRows(5);
        jScrollPane1.setViewportView(jTComentariosEmpleado);

        jScrollPane1.setBounds(500, 60, 470, 140);
        jLayeredPane2.add(jScrollPane1, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLabel14.setText("Telefono:");
        jLabel14.setBounds(120, 140, 80, 14);
        jLayeredPane2.add(jLabel14, javax.swing.JLayeredPane.DEFAULT_LAYER);
        jTTlfEntrevistado.setBounds(250, 140, 160, 20);
        jLayeredPane2.add(jTTlfEntrevistado, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLayeredPane2.setBounds(0, 180, 1020, 220);
        jLayeredPane1.add(jLayeredPane2, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jCBSi.setBackground(new java.awt.Color(255, 255, 255));
        jCBSi.setText("Si autorizo");
        jCBSi.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCBSiActionPerformed(evt);
            }
        });
        jCBSi.setBounds(130, 90, 90, 23);
        jLayeredPane3.add(jCBSi, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLabel10.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel10.setText("Permítame agradecerle por su cooperación y el tiempo dedicado a responder estas preguntas. La información que nos han dado será de mucha utilidad");
        jLabel10.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING);
        jLabel10.setBounds(90, 20, 890, 20);
        jLayeredPane3.add(jLabel10, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jCBNo.setBackground(new java.awt.Color(255, 255, 255));
        jCBNo.setText("No autorizo");
        jCBNo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCBNoActionPerformed(evt);
            }
        });
        jCBNo.setBounds(240, 90, 100, 23);
        jLayeredPane3.add(jCBNo, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLabel11.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel11.setText("utilidad para mejorar el servicio. ¿Queríamos solicitarle su autorización para entregarle a su proveedor de servicio la información que tan gentilmente");
        jLabel11.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING);
        jLabel11.setBounds(90, 40, 850, 14);
        jLayeredPane3.add(jLabel11, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jBFinalizar.setText("Finalizar Entrevista");
        jBFinalizar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBFinalizarActionPerformed(evt);
            }
        });
        jBFinalizar.setBounds(793, 140, 160, 23);
        jLayeredPane3.add(jBFinalizar, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jBPrev.setText("< Prev");
        jBPrev.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBPrevActionPerformed(evt);
            }
        });
        jBPrev.setBounds(710, 140, 65, 23);
        jLayeredPane3.add(jBPrev, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLabel12.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel12.setText("nos ha proporcionado sin vincularlo a sus datos personales, con el fin de mejorar el servicio?");
        jLabel12.setBounds(90, 60, 550, 14);
        jLayeredPane3.add(jLabel12, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLayeredPane3.setBounds(0, 400, 1020, 180);
        jLayeredPane1.add(jLayeredPane3, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLabel13.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel13.setText("¿Cantidad de personas qué trabajan en la Empresa / Institución?");
        jLabel13.setBounds(90, 110, 390, 14);
        jLayeredPane1.add(jLabel13, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jScrollPane2.setViewportView(jLNavegacion);

        jScrollPane2.setBounds(570, 70, 400, 130);
        jLayeredPane1.add(jScrollPane2, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLFondo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Vista/Imagenes/fondoBlanco.png"))); // NOI18N
        jLFondo.setText("jLabel1");
        jLFondo.setBounds(0, -30, 1030, 610);
        jLayeredPane1.add(jLFondo, javax.swing.JLayeredPane.DEFAULT_LAYER);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jLayeredPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 1024, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jLayeredPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 580, Short.MAX_VALUE)
        );

        setSize(new java.awt.Dimension(1040, 618));
        setLocationRelativeTo(null);
    }// </editor-fold>//GEN-END:initComponents

    private void jCBSiActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCBSiActionPerformed
        jCBNo.setSelected(false);
    }//GEN-LAST:event_jCBSiActionPerformed

    private void jCBNoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCBNoActionPerformed
        jCBSi.setSelected(false);
    }//GEN-LAST:event_jCBNoActionPerformed

    private void jBFinalizarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBFinalizarActionPerformed
        if (JOptionPane.showConfirmDialog(null,"¿Desea realizar otra entrevista?","Información",
            
            JOptionPane.WARNING_MESSAGE) == JOptionPane.YES_OPTION){
            LogicaAplicacion.getEmpresa().setTlfEmpresa(jTTlfEntrevistado.getText());
            PrevioInsert();
            JOptionPane.showMessageDialog(null,"Su encuesta ha sido almacenada"
                    + " en la base de datos con el id: "+LogicaAplicacion.getId());
            Presentacion v = new Presentacion();
            v.setVisible(true);
            this.dispose();
        }
        else this.dispose();
    }//GEN-LAST:event_jBFinalizarActionPerformed

    private void jBPrevActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBPrevActionPerformed
        try {
            this.setVisible(false);
            LogicaAplicacion.mostrarPantallaRegreso(this.getPosicionActual() - 1);
        } catch (Exception ex) {
            this.setVisible(true);
            JOptionPane.showMessageDialog(null,ex.getMessage());
        }
    }//GEN-LAST:event_jBPrevActionPerformed

    private void PrevioInsert(){
        
        if (!jTNroObreros.getText().equals(""))
            LogicaAplicacion.setP19_2(Integer.parseInt(jTNroObreros.getText()));
        else LogicaAplicacion.setP19_2(0);
        
        if (!jTNroEmpleados.getText().equals(""))
            LogicaAplicacion.setP19_1(Integer.parseInt(jTNroEmpleados.getText()));
        else LogicaAplicacion.setP19_1(0);
        
        LogicaAplicacion.setHoraFinEntrevista(""+Calendar.getInstance().
               get(Calendar.HOUR_OF_DAY)+":"+Calendar.getInstance().get
                (Calendar.MINUTE));
        
        LogicaAplicacion.setEntrevistado(new Entrevistado(jTNombreEntrevistado.
                getText(),jTEmailEntrevistado.getText(),jTlfEntrevistado.getText()));
        
        if (!jTComentariosEmpleado.getText().equals(""))
            LogicaAplicacion.setComentariosEntrevistap22(jTComentariosEmpleado.getText());
        else LogicaAplicacion.setComentariosEntrevistap22("");
        
        if (jCBSi.isSelected())
         LogicaAplicacion.setP23(1);
        else 
         LogicaAplicacion.setP23(2);
        
        LogicaAplicacion.hacerInsert();
    }
    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new DatosClasificacion().setVisible(true);
            }
        });
    }

    public void run() {
        try {
            while (inicio){

                if(segundos != 59) {
                   segundos++;
                }else{
                    if(minutos != 59){
                        segundos = 0;
                        minutos++;
                    }else{
                            horas++;
                            minutos = 0;
                            segundos = 0;
                    }
                }

                if (minutos >= 10)
                    jLTimer.setForeground(Color.red);
                
                    jLTimer.setText(horas+":"+minutos+":"+segundos);

                Thread.sleep(999);
            }

        } catch (InterruptedException ex) {
            System.out.println("Error en el sleep de aplicacion = " +ex.getMessage());
        }
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jBFinalizar;
    private javax.swing.JButton jBPrev;
    private javax.swing.JCheckBox jCBNo;
    private javax.swing.JCheckBox jCBSi;
    private javax.swing.JLabel jLFondo;
    private javax.swing.JLabel jLLogo;
    private javax.swing.JList jLNavegacion;
    private javax.swing.JLabel jLSponsor;
    private javax.swing.JLabel jLTimer;
    private javax.swing.JLabel jLTitulo;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel14;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JLayeredPane jLayeredPane1;
    private javax.swing.JLayeredPane jLayeredPane2;
    private javax.swing.JLayeredPane jLayeredPane3;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JTextArea jTComentariosEmpleado;
    private javax.swing.JTextField jTEmailEntrevistado;
    private javax.swing.JTextField jTNombreEntrevistado;
    private javax.swing.JTextField jTNroEmpleados;
    private javax.swing.JTextField jTNroObreros;
    private javax.swing.JTextField jTTlfEntrevistado;
    private javax.swing.JTextField jTlfEntrevistado;
    // End of variables declaration//GEN-END:variables

}
